﻿Imports System.Transactions
Imports Sistema_InformacionNaviera.BE
Imports Sistema_InformacionNaviera.DALC


Public Class EntidadesBC
    Public Function ListaEntidades(ByVal objEntidadesBE As EntidadesBE) As List(Of EntidadesBE)

        Dim objEntidades As List(Of EntidadesBE) = Nothing
        Dim objEntidadesDALC As EntidadesDALC = Nothing
        objEntidadesDALC = New EntidadesDALC
        objEntidades = New List(Of EntidadesBE)()
        objEntidades = objEntidadesDALC.ListaEntidades(objEntidadesBE)

        Return objEntidades
    End Function


    Public Function ListaAdministrarEntidades(ByVal objEntidadesBE As EntidadesBE) As List(Of EntidadesBE)

        Dim objCliente As List(Of EntidadesBE) = Nothing
        Dim objClienteDALC As EntidadesDALC = Nothing

        objClienteDALC = New EntidadesDALC
        objCliente = New List(Of EntidadesBE)()
        objCliente = objClienteDALC.ListaAdministrarEntidades(objEntidadesBE)

        Return objCliente
    End Function


    Public Function ValidarEntidad(ByVal objEntidadesBE As EntidadesBE) As Boolean

        Dim bResultado As Boolean = False
        Dim objClienteDALC As EntidadesDALC = Nothing

        objClienteDALC = New EntidadesDALC
        bResultado = objClienteDALC.ValidarEntidad(objEntidadesBE)

        Return bResultado
    End Function

    Public Function InsertarEntidades(ByVal objEntidadesBE As EntidadesBE, bExito As Boolean, ByRef sMensaje As String) As Boolean

        Dim objScope As TransactionScope
        objScope = New TransactionScope 

        Using objScope
            Try
                Dim objEntidadesDALC As EntidadesDALC = Nothing
                objEntidadesDALC = New EntidadesDALC

                bExito = objEntidadesDALC.InsertarEntidades(objEntidadesBE, bExito, sMensaje)

                objScope.Complete()
            Catch ex As Exception
                Throw
            End Try
        End Using

        Return bExito
    End Function

    Public Function EditarEntidades(ByVal objEntidadesBE As EntidadesBE, bExito As Boolean, ByRef sMensaje As String) As Boolean

        Dim objScope As TransactionScope
        objScope = New TransactionScope

        Using objScope
            Try
                Dim objEntidadesDALC As EntidadesDALC = Nothing
                objEntidadesDALC = New EntidadesDALC

                bExito = objEntidadesDALC.EditarEntidades(objEntidadesBE, bExito, sMensaje)

                objScope.Complete()
            Catch ex As Exception
                MsgBox(ex.Message, vbCritical, "Error del sistema")
                Return False
                Exit Function
            End Try
        End Using

        Return bExito
    End Function

    Public Function EliminarEntidad(ByVal objEntidadesBE As EntidadesBE, bExito As Boolean, ByRef sMensaje As String) As Boolean

        Dim objScope As TransactionScope
        objScope = New TransactionScope 

        Using objScope
            Try
                Dim objEntidadesDALC As EntidadesDALC = Nothing
                objEntidadesDALC = New EntidadesDALC

                bExito = objEntidadesDALC.EliminarEntidad(objEntidadesBE, bExito, sMensaje)

                objScope.Complete()
            Catch ex As Exception
                Throw
            End Try
        End Using

        Return bExito
    End Function

    Public Function ListaEntidadesModificar(ByVal objEntidadesBE As EntidadesBE) As List(Of EntidadesBE)

        Dim objCliente As List(Of EntidadesBE) = Nothing
        Dim objClienteDALC As EntidadesDALC = Nothing

        objClienteDALC = New EntidadesDALC
        objCliente = New List(Of EntidadesBE)()
        objCliente = objClienteDALC.ListaEntidadesModificar(objEntidadesBE)

        Return objCliente
    End Function

End Class
